프로젝트 더 디벨롭하기
1. Logging은 어떻게 할까?
- 에러 뿐만 아니라 디버깅하기 위한 로그도 충분히 심어둔다.
- 내장 모듈 혹은 외부 모듈을 활용하여 로그의 레벨을 설정하며, 환경(dev, prod)에 맞게 로그를 분리한다
- 로그를 저장할 수 있는 저장소를 둔다 ex. elk stack
- 에러의 정도에 따라 이를 모니터링 서버에 알릴 수 있어야 한다 ex. sentry
2. 예외 처리는 어떻게 할까?
- 내장된 Exception을 잘 활용하고, 규칙에 따른 Custom Exception도 활용한다.
- Exception을 catch한 후 의미 있는 처리를 해줘야 한다.
3. 테스트 디벨롭하기
- 테스트 커버리지 도구를 활용해 정량적으로 테스트 커버리지 확인하기
- Happy Path가 아닌 UnHappy Path Test를 짜자
- 외부 의존성과 비즈니스 로직을 잘 분리하자
- Docker & Docker Compose를 활용해 테스트 환경을 격리해서 테스트해보자.
4. 프로젝트 규모가 커질 수록 신경써야 할 것
- 객체의 응집도를 높이고 결합도를 줄인다.
- 공통 컴포넌트들을 잘 활용하여 코드의 복잡도를 낮춘다.
- 각 레이어의 의존 관계가 꼬이지 않도록 신경써야 한다.
- 상황에 맞는 디자인 패턴, 아키텍처를 고려하며 순차적으로 리팩토링을 진행하면서 점진적으로 개선한다.